1. Technical Field of the Invention
The present invention relates to the field of computer systems, and more particularly, to systems having master and slave devices with a protocol for establishing communications between the master and slave devices.
2. Description of Related Art
Most modern computer systems include a number of different devices that communicate with one another over a bus. Each device can be separately connected to the bus, which is essentially a common set of conductive lines over which signals are carried to all of the devices connected to the bus. The information that is typically carried by buses includes addresses and data, although these are often carried separately on an address bus and a data bus. Other buses, such as the peripheral component interface (PCI) bus, carry the address information and the data information in a time multiplexed format, with distinct address and data phases on the bus. The data phase follows the address phase in typical transfers, either directly following the address phase, or at some time period after the address phase (a "split transaction"). The bus concept provides system expandability since a new device can be added to the computer system by connecting the new device to the bus where it can communicate with the existing devices on the bus.
Certain types of devices that are coupled to the bus can operate as "master" devices that take over control of the bus, at least temporarily, to initiate transactions with other devices coupled to the bus. An example of a master device is a central processing unit (CPU). Other types of devices coupled to the bus, such as a hard disk drive or host adapters for interface cards, operate as "slave" (or "target") devices. In general, slave devices are responsive to the requests of master devices to perform specified actions, such as a transfer of data with the master. Many devices can function as both a master and a slave.
Masters and slaves normally execute some type of protocol to establish communications between a particular master and a particular slave with which the master desires to effect a transaction. One type of protocol is a "handshake" protocol, in which the master sends a signal that informs the particular slave that the master wants to perform a transaction with that slave. In response to the master's signal, the slave asserts a signal generally indicating its readiness to perform the transaction. In certain systems, the slave will assert a plurality of different handshake signals. For example, in many systems a slave will assert an address ready signal to indicate to a master that it is available to receive address information, and a data ready signal that indicates that the slave has ready data information to be read by the master.
In a known system that uses a bus on which addresses and data are multiplexed, in addition to the bus connections, each of the slaves is coupled to a master device by separate address ready and data ready lines. Each slave therefore has one output connection for the address ready signal, and another output connection for the data ready signal. Separate address ready input connections at the master for each of the slaves are required since the master needs to distinguish between the address ready signals of the different slaves coupled to the master. Each of the address ready output connections from the different slaves therefore forms a separate address ready input connection to the master. By contrast, the data ready output connections from a plurality of slaves can be connected together to form one data ready input to the bus master, since only the addressed slave will assert the data ready signal when it is ready to transfer data.
A design consideration for many devices is the "pin count" of the chip that forms the device. The pin count is the number of connection pins that connect the chip (i.e. the device) to a bus or other signal lines. A reduction in the pin count of a chip, even by one pin, can have a significant positive impact-in minimizing the cost of the chip.